package cn.csc.module.shoppingCard.controller.admin.transaction.vo;

import cn.csc.framework.common.pojo.PageParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigInteger;
import java.time.LocalDateTime;

import static cn.csc.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@ApiModel("管理后台 - 交易记录分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class CardTransactionPageReqVO extends PageParam {

    /**
     * 项目ID
     */
    @ApiModelProperty(value = "项目ID")
    private BigInteger projectId;

    @ApiModelProperty(value = "关联的卡号")
    private BigInteger cardId;

    @ApiModelProperty(value = "交易类型（1-充值，2-消费，3-退款，4-冻结，5-解冻）")
    private Byte txnType;

    @ApiModelProperty(value = "关联的订单号")
    private BigInteger relatedOrder;

    /**
     * 状态(0-创建，1-完成)
     */
    @ApiModelProperty(value = "状态(0-创建，1-完成)")
    private Byte status = 1;

    @ApiModelProperty(value = "交易时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] txnTime;

    @ApiModelProperty(value = "备注（如充值渠道、消费商户信息）")
    private String remark;

    @ApiModelProperty(value = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

}
